package hoja3;
/*66666666666666666666666666666666666666
 * 			Lista
 * 
 * Escrito por: Ernesto Rodriguez
 * 
 * Descripcion: Esta es una interfaz para
 * crear una lista
 666666666666666666666666666666666666666*/
public interface Lista <Type>{

	/**Agrega un elemento en una posicion
	 * especifica de la lista.
	 * 
	 * @param obj Elemento que se quiere agregar
	 * @param pos Posicion donde se quiere agregar el elemento
	 */
	public void add(Type obj, int pos);
	
	/**Agrega un elemento al principio de la lista
	 * 
	 * @param obj Elemento que se quiere agregar
	 */
	
	public void add(Type obj);
	
	/**Permite recuperar un elemento de una
	 * posicion especifica de la lista
	 * 
	 * @param pos Posicion del elemetno que se desea recuperar
	 * @return Elemento de la posicion indicada.
	 */
	public Type get(int pos);
	
	/**Indica la cantidad de elementos en la lista
	 * 
	 * @return Cantidad de elementos en la lista
	 */
	
	public int size();
	
	/**Elimina un elemento de la posicion indicada
	 * de la lista
	 * 
	 * @param pos Posicion del elemento que se desea eliminar
	 */
	
	public void delete(int pos);
	
	/**Iterador que devuelbe el siguiente elemento de la
	 * iteracion actual
	 * 
	 * @return Siguiente elemento
	 */
	
	public Type next();
	
	/**Indica si todavia hay un sigiente elemento en la
	 * iteracion actual
	 * 
	 * @return Estado de la iteracion actual
	 */
	
	public Boolean hasNext();
	
	/**Reinicia el iterador
	 */
	
	public void reset();
	
}
